#!/bin/bash
#
# Copyright (c) 2006-2017 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission
#

set -e

clear
echo "======================================"
echo "          BeEF Installer   "
echo "======================================"
echo ""

echo "CAUTION: This installation script will install a number of BeEF dependencies including the Ruby-RVM environment and its dependencies." 
echo "" 
echo "In rare cases, this may lead to unexpected behaviour or package conflicts on some systems."
echo ""
read -p  "Are you sure you wish to continue (Y/n)? " 
if [ "`echo ${REPLY} | tr [:upper:] [:lower:]`" == "n" ] ; then
	 exit;
fi

echo ""
echo "Detecting OS..";


OS=`uname`

if [ "${OS}" = "Linux" ] ; then
    if [ -f /etc/redhat-release ] ; then
        Distro='RedHat'
    elif [ -f /etc/debian_version ] ; then
        Distro='Debian'
    fi
    readonly OS
    readonly Distro
fi

if [ "$OS" == "Darwin" ]; then
	echo "Mac OSX Detected"
	echo "Installing Ruby Version Manager (RVM) & Ruby 2.3.0.."
	bash -s stable < <(curl -Ls https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
	source ~/.bash_login
	rvm install 2.3.0 --with-gcc=clang
	rvm use 2.3.0
	echo ""
	echo "Downloading BeEF.."
	
	git clone git://github.com/beefproject/beef.git
	cd beef
	
	echo ""
	echo "Installing Ruby Gems.."
	bundle install
	OK="yes"
	
	./beef
	
	echo ""
	echo "=========================================="
	echo "          Install Complete"
	echo "Please restart Terminal and Run BeEF with:"
	echo "                  $ ./beef     "
	echo "=========================================="
	echo ""
		
fi

if [ "$Distro" == "Debian" ]; then
	echo "Debian/Ubuntu Detected"
	echo "Installing Prerequisite Packages.."
	sudo apt-get update 
	sudo apt-get install curl git



sudo apt-get install build-essential openssl libreadline6 libreadline6-dev zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev autoconf libc6-dev libncurses5-dev automake libtool bison subversion nodejs

curl -Lsk https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc

source ~/.bashrc

if [ -e $HOME/.rvm/scripts/rvm ]; then
	source $HOME/.rvm/scripts/rvm
elif [ -e /usr/local/rvm/scripts/rvm ]; then
	source /usr/local/rvm/scripts/rvm
else
	source /etc/profile.d/rvm.sh
fi

	rvm install 2.3.0
	rvm use 2.3.0 --default

	echo "Downloading BeEF.."
	git clone git://github.com/beefproject/beef.git
	cd beef

	echo "Installing Ruby Gems"
	gem install bundler
	bundle install
	
	
	./beef

	OK="yes"
	echo ""
	echo "=========================================="
	echo "          Install Complete"
	echo "=========================================="
	echo ""
fi


if [ "$Distro" == "RedHat" ]; then
	echo "Redhat/Fedora Detected"
	echo "Installing Prerequisite Packages.."
	sudo yum install -y git make gcc openssl-devel gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel bzip2 autoconf automake libtool bison iconv-devel sqlite-devel nodejs

	echo ""
	echo "Installing Ruby Version Manager (RVM) & Ruby 2.3.0"
	wget https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer
	bash ./rvm-installer
	source ~/.rvm/scripts/rvm
	rvm pkg install openssl
	rvm install 2.3.0 --with-openssl-dir=$rvm_path/usr
	source ~/.rvm/scripts/rvm
	rvm use 2.3.0 --default
	
	echo "Downloading BeEF.."
	git clone git://github.com/beefproject/beef.git
	cd beef
	
	gem install bundler
	bundle
	
	source ~/.bash_profile
	
	./beef

	OK="yes"
	echo ""
	echo "=========================================="
	echo "          Install Complete"
	echo "=========================================="
	echo ""
		
fi

if [ "$OK" == "yes" ]; then		
echo ""
else 
	echo ""
	echo "======================================="
	echo "          Install Failed"
	echo "Unable to locate installer for your OS:"
	echo $OS
	echo $Distro
	echo "======================================="
	echo ""
fi






